#include "mainwindow.h"
#include "ui_mainwindow.h"

/*
 * TEST 状态栏 && 子窗口 QDockWidget
*/

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 这个接口：如果存在就获取，不存在就会创建
    QStatusBar* statusBar = this->statusBar();
    this->setStatusBar(statusBar);

    /*
     * TEST 显示部分
     * showMessage 只是去显示一个临时文本
     * 这里也可以去添加控件
     * 比如 addWidget 和 addPermanentWidget, 前者是从左边开始添加，后者是从右边开始添加
     *     同时两个接口都有 stretch 这个参数，用来表示不同的组件所占据的空间分别是多大
    */
    // statusBar->showMessage("Status Bar", 3);
    statusBar->addWidget(new QLabel("Hello World"), 1);
    statusBar->addWidget(new QLabel(" Bright"), 1);
    QProgressBar* progressBar = new QProgressBar();
    progressBar->setRange(0, 100);
    progressBar->setValue(10);
    statusBar->addWidget(progressBar, 1);

    /*
     * QDockWidget 子窗口的相关操作
    */
    QDockWidget* dockWidget = new QDockWidget();
    // 将这个子窗口/滑动窗口添加到当前页面的什么位置
    this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

    // 给浮动窗口设置标题
    dockWidget->setWindowTitle("Dock Widget Title");

    /*
     * QDockWidget 只能添加一个控件，如果要添加复杂一些的控件，那么就需要先将这个控件设置好，然后再设置进去
    */
    QWidget* container = new QWidget();
    dockWidget->setWidget(container);

    QVBoxLayout* vlayout = new QVBoxLayout();
    container->setLayout(vlayout);

    vlayout->addWidget(new QLabel("Input Your Info And Submit"), 1);
    vlayout->addWidget(new QPushButton("Submit"), 2);

    dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea);
}

MainWindow::~MainWindow()
{
    delete ui;
}

